package controleur;

import java.util.ArrayList;

import javax.swing.JOptionPane;

import modele.Client;
import modele.Livreur;

public class Authentification {
	
	private ArrayList<Client> listeClients;
	private ArrayList<Livreur> listeLivreurs;
	
	/**
	 * Constructeur
	 */
	public Authentification() {
		this.listeClients = new ArrayList<Client>();
		this.listeLivreurs = new ArrayList<Livreur>();
	}
	
	/**
	 * Ajoute un client à la liste des clients
	 * @param client - Client
	 */
	public void ajouterClient(Client client) {
		this.listeClients.add(client);
	}
	
	/**
	 * Ajoute un livreur à la liste des livreurs
	 * @param livreur - Livreur
	 */
	public void ajouterLivreur(Livreur livreur) {
		this.listeLivreurs.add(livreur);
	}
	
	public String authentificationClient() {
		Client client = checkNameClient();
		String adresseClient = null;
		if (client != null) {
			if (client.getAuthentification()) {
				adresseClient = client.getAdresse();
			}
		}
		return adresseClient;
	}
	
	public boolean authentificationLivreur() {
		boolean estAuthentifie = false;
		Livreur livreur = checkNameLivreur();
		if (livreur != null) {
			if (livreur.getAuthentification()) {
				estAuthentifie = true;
			}
		}
		return estAuthentifie;
	}
	
	/**
	 * Compare le nom reçu par un JOptionPane à ceux dans la liste des clients
	 * @return Client
	 */
	public Client checkNameClient() {
		boolean continuer = false;
		Client leClient = null;
		String message = "Entrez votre nom d'utilisateur";
		do {
			String nom = JOptionPane.showInputDialog(message);
			if (nom == null) {
				continuer = true;
			} else {
				for (Client client : listeClients) {
					if (client.getNom().compareTo(nom) == 0) {
						leClient = client;
						continuer = true;
					} else {
						message =  "L'utilisateur '"+nom+"'n'existe pas.\nEntrez votre nom d'utilisateur";
					}
				}
			}
		} while (!continuer);
		return leClient;
	}
	
	/**
	 * Compare le nom reçu par un JOptionPane à ceux dans la liste des livreurs
	 * @return Livreur
	 */
	public Livreur checkNameLivreur() {
		boolean continuer = false;
		Livreur leLivreur = null;
		String message = "Entrez votre nom d'utilisateur";
		do {
			String nom = JOptionPane.showInputDialog(message);
			if (nom == null) {
				continuer = true;
			} else {
				for (Livreur livreur : listeLivreurs) {
					if (livreur.getNom().compareTo(nom) == 0) {
						leLivreur = livreur;
						continuer = true;
					} else {
						message =  "L'utilisateur '"+nom+"'n'existe pas.\nEntrez votre nom d'utilisateur";
					}
				}
			}
		} while (!continuer);
		return leLivreur;
	}
}